package cn.iocoder.yudao.module.mp.convert.account;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountCreateReqVO;
import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountRespVO;
import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountSimpleRespVO;
import cn.iocoder.yudao.module.mp.controller.admin.account.vo.MpAccountUpdateReqVO;
import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 公众号账户转换
 *
 * @author huangweidong
 * @date 2023/05/10
 */
@Mapper
public interface MpAccountConvert {

    MpAccountConvert INSTANCE = Mappers.getMapper(MpAccountConvert.class);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code MpAccountDO}
     */
    MpAccountDO convert(MpAccountCreateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code MpAccountDO}
     */
    MpAccountDO convert(MpAccountUpdateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code MpAccountRespVO}
     */
    MpAccountRespVO convert(MpAccountDO bean);

    /**
     * 转换列表
     *
     * @param list 列表
     * @return {@code List<MpAccountRespVO>}
     */
    List<MpAccountRespVO> convertList(List<MpAccountDO> list);

    /**
     * 转换分页
     *
     * @param page 分页
     * @return {@code PageResult<MpAccountRespVO>}
     */
    PageResult<MpAccountRespVO> convertPage(PageResult<MpAccountDO> page);

    /**
     * 转换list02
     *
     * @param list 列表
     * @return {@code List<MpAccountSimpleRespVO>}
     */
    List<MpAccountSimpleRespVO> convertList02(List<MpAccountDO> list);

}
